package com.ruoyi.iot.domain;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

/**
 * (IotSensor)表实体类
 *
 * @author makejava
 * @since 2025-01-14 17:49:54
 */
@Data
@TableName("iot_sensor")
public class IotSensor {
    //id主键
    @TableId(type = IdType.AUTO)
    private Integer id;
    //传感器id
    @TableField("sensor_id")
    private String sensorId;
    //传感器名称
    @TableField("sensor_name")
    private String sensorName;
    //绑定设备id
    private String deviceId;
    //绑定的站点id
    private String stationId;
    //设备类型
    private String sensorType;
    //相关参数2
    private String paramTwo;
    //设备原出厂编号
    private String factoryNo;
    //插入数据采集仪或遥测终端孔位
    private String holePosition;
    //相关参数1
    private String paramOne;

    private String paramThree;

    /**
     * 在线状态（1=在线，0=离线）
     */
    private String onlineStatus;

    /**
     * 最后一次在线时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date onlineTime;

    /**
     * 预警状态（1=正在预警中，0=非预警状态）
     */
    private String warningStatus;

    /**
     * 预警时长（次数）
     */
    private Integer warningDuration;

    /**
     * 最后一次预警参数
     */
    private String lastWarningParam;

    /**
     * 最后一次预警内容
     */
    private String lastWarningContent;

    /**
     * 最后一次预警时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastWarningTime;

    /**
     * 采集间隔（分钟）
     */
    private Integer collectInterval;

    @TableField(exist = false)
    private String stationName;


    //经度
    @TableField(exist = false)
    private String longitude;
    //纬度
    @TableField(exist = false)
    private String latitude;

    //终端型号
    @TableField(exist = false)
    private String moduleName;
    //终端id
    @TableField(exist = false)
    private String remoteId;
    //终端名称
    @TableField(exist = false)
    private String remoteName;
    //sn编号
    @TableField(exist = false)
    private String sn;
    //状态
    @TableField(exist = false)
    private Integer status;
    //上一次监测上报时间
    @TableField(exist = false)
    private Date lastOnlineTime;
    //版本号
    @TableField(exist = false)
    private String version;
    //传输协议
    @TableField(exist = false)
    private String transportProtocol;
    //解析方式
    @TableField(exist = false)
    private String protocolCode;
}

